#include "ProcesadorPHP.h"

//	formulario.php?cantArch=3&tipo=8&elemento=11
bool ProcesadorPHP::extraerParametrosParaElPHP(string& rutaDelPHP, const string uri, list<string>& listaParams) {
	
	size_t pos = uri.find(".php");
	bool retorno = true;
	
	if (pos == uri.npos) retorno = false;
	else {
		retorno = true;
		rutaDelPHP = uri.substr(1, pos + 3);
		string parametros(uri.substr(pos + 5, uri.length()));
		
		//cout << "rutaDelPHP: " << rutaDelPHP << endl;

		//cout << "listado de parametros,  parseado: " << endl;
		
		size_t posInicial = 0;
		size_t posFinal = 0;
		while (posFinal = parametros.find("&", posInicial) != parametros.npos) {
			string param = parametros.substr(posInicial, posFinal-1);
			listaParams.push_back(param);
			posInicial = posFinal + 1;
			
			//cout << param << endl;
		}	
		string param = parametros.substr(posInicial, parametros.length());
		listaParams.push_back(param);
		
		//cout << param << endl;
	}
	
	return retorno;
}

/*	ejemplo de comando -> "php formulario.php --cantArchivos=5 --modo=fr" */

string ProcesadorPHP::armarComandoPHP(const string rutaPHP_EntradaTemp, std::list<string> listaParams) {
	string comando("php ");

	comando.append(rutaPHP_EntradaTemp);

	for (list<string>::iterator it = listaParams.begin(); it != listaParams.end(); it++) {
		comando.append(" --");
		comando.append(*it);
	}

	//cout << "comando para CLI: " << comando << endl;
	return comando;
}